package com.sweetcircle.domain.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.sweetcircle.annotation.FieldNote;
import lombok.Data;

import java.io.Serializable;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class MessageSendDto<T> implements Serializable {
    private static final long serialVersionUID = -1045752033171142417L;

    /**
     * 消息ID
     */
    @FieldNote("消息ID")
    @TableId
    private String messageId;
    /**
     * 消息类型
     */
    @FieldNote("消息类型 7:异地登陆 4:好友申请 1:更新联系人信息 2:文本消息")
    private Integer messageType;
    /**
     * 消息代码 1用户 2群聊
     */
    @FieldNote("消息类型")
    private Integer messageCode;
    /**
     * 消息内容
     */
    @FieldNote("消息内容")
    private String messageContent;

    /**
     * 会话ID
     */
    @FieldNote("会话ID")
    private String sessionId;
    /**
     * 发送人ID
     */
    @FieldNote("发送人ID")
    private String sendUserId;
    /**
     * 发送时间
     */
    @FieldNote("发送时间")
    private Long sendTime;
    /**
     * 接收联系人ID
     */
    @FieldNote("接收联系人ID")
    private String contactId;

    /**
     * 接收群组ID
     */
    @FieldNote("接收群组ID")
    private String groupId;

    /**
     * 文件大小
     */
    @FieldNote("文件大小")
    private String fileSize;
    /**
     * 文件名
     */
    @FieldNote("文件名")
    private String fileName;
    /**
     * 文件类型
     */
    @FieldNote("文件类型")
    private Integer fileType;
    /**
     * 状态 0:正在发送 1:已发送 2:未接收 3:已接收
     */
    @FieldNote("状态 0:正在发送 1:已发送 2:未接收")
    private Integer sendStatus;

    /**
     * 状态 0:删除 1:正常
     */
    @FieldNote("状态 0:删除 1:正常")
    private Integer status;

    //最后的消息
    private String lastMessage;
    //联系人类型
    private Integer contactType;
    //扩展信息
    private T extendData;
    //群员
    private Integer memberCount;

}
